﻿namespace PropertyExpression.ControllableQuery.Documentation
{
    internal class Program
    {
        private static void Main()
        {
            new Document(
                new Section("Особенности человеческого мышления и impedance mismatch."),
                "");
        }

        static void DijkstraCitation()
        {
            new Document(
                new CitationList(
                    new CitationItem("Если, однако, вы предлагаете неустойчивое, предположительное решение неотложной проблемы, вы действительно вредите миру который, ввиду безотлагательности проблемы, будет готов ваше неэффективное средство. Неудивительно, что шарлатанство всегда процветает рядом с неизлечимыми болезнями. (Наше второе правило традиционно нарушается социальными науками до такой степени, что можно усомниться, заслуживают ли они названия \"наук\" вообще.)",
                                     "http://khpi-iip.mipk.kharkiv.edu/library/extent/dijkstra/pp/ewd637.html"),
                    new CitationItem("Sij", "http://www.cs.utexas.edu/~EWD/transcriptions/EWD02xx/EWD264.html")));

            new Text("Эдсгер Дейкстра: \"Все мы знаем, что единственное мыслительное средство, посредством которого вполне конечный фрагмент рассуждения может охватывать миллионы случаев, называется \"абстракцией\". Поэтому наиболее важным видом деятельности компетентного программиста можно считать эффективную эксплуатацию его способности к абстрагированию\"."); //Цитата отправленная Елене Левнер
        }
    }

    internal class CitationList : Element
    {
        public CitationList(params CitationItem[] citationItems)
        {
            throw new System.NotImplementedException();
        }
    }

    internal class CitationItem
    {
        public CitationItem(params Element[] elements)
        {
        }
    }

    internal class Section : Element
    {
        public Section(string s)
        {
            throw new System.NotImplementedException();
        }
    }

    internal class Document
    {
        public Document(params Element[] elements)
        {
        }
    }

    internal class Element
    {
        public static implicit operator Element(string s)
        {
            return new Text(s);
        }
    }

    internal class Text : Element
    {
        public Text(string s)
        {
            throw new System.NotImplementedException();
        }
    }
}